home *** CD-ROM | disk | FTP | other *** search
- CHANGES MADE TO PFE:
- ====================
-
- If I haven't fixed the bug you've seen, please drop a line to
-
- Dirk Zoller (duz@roxi.rz.fht-mannheim.de)
-
-
- Thanks to your bug reports and suggestions,
- I was able to fix these errors and do the following improvements:
- =================================================================
-
- 0.9.12 -- 0.9.13
-
- - Made it faster by reordering some if/else clauses and
- partially unrolling the inner interpreter loop.
- - Made `AHEAD' immediate as it should be.
- - Fixed yet more bugs in the configuration script.
- - Fixed an ugly bug: Instead of signal names SIGxyz the
- numbers were defined as constants. The same bug messed
- up search paths for source and block files.
-
- 0.9.11 -- 0.9.12
-
- - Extracted the glossary parts from dpANS6 for online help.
- - Fixed install target in Makefile.
- - Fixed several of the rewritten file access words.
- - Fixed several details in guesscfg.sh
- - Finally runs on NeXTstep (without -posix option).
- - Uses global register variables on M68K CPU now.
-
- 0.9.10 -- 0.9.11
-
- - Completely rewrote configuration, hopefully more reliable now.
- Please read file INSTALL.
- - Fixed Bug in `SEARCH'.
- - Added source file `filesub.c' and moved some subroutines
- for file access there. Partly rewrote file access words.
- Namely `RESIZE-FILE' uses truncate() now if available.
- - Added words `COPY-FILE' and `MOVE-FILE', same stack effect
- as `RENAME-FILE'.
- - Rewrote block word set, added another block extension word set,
- each word with prefix `FILE-' takes additional fid. E.g.
- `10 an-fid FILE-LIST'
- list block 10 in the opened file.
- - Added `LOAD"' to load from another block file like this
- 1 LOAD" other-file"
- - Added support for Watcom C. It's not better than gcc.
- - Added Watcom compiled binaries. They are not perfect.
-
- 0.9.9 -- 0.9.10
-
- - Fixed `FCONSTANT' and `FVARIABLE' on HP 700.
- - Checked command line options -D and -d. Made
- turnkey-applications work. See demo/tt.app.
- - Fixed a problem with the help index not readable.
- Installation of the online help is still a mess.
-
- 0.9.8 -- 0.9.9
-
- - Added an `install' target to the makefile.
- - Added parameters to the config script:
- CC="the C compiler" overrides the tendency towards gcc
- --prefix=dir to specify a destination directory
- - Once more fiddled around with the terminal stuff.
- - Fixed several bugs on the DEC alpha architecture.
- - Rewrote `>FLOAT' not to rely on sscanf() any more.
- - Renamed a few things to avoid name clashes,
- e.g. the -DBSD option now is -D_BSD. Read `install'.
-
- 0.9.7 -- 0.9.8
-
- (This was an accidental release and not announced.)
- - Added `HELP', see `help/README' for how to install,
- then try `HELP ?STACK'.
- - Added command line options in ARGC / ARGV according to
- an idea by Guenther Thomsen. See `demo/arguments'.
- - Moved configurable options to file `options.h'.
- - Fixed `>FLOAT', `FE.', `FLNP1', `REPRESENT'.
- - Fixed `PARSE'-bug introduced in 0.9.4: No refill at end of line.
- - Fixed `SEE' and debugger to display the value `TO' refers to.
- - Made `CATCH' and `THROW' aware of the floating point stack.
- - Made it significantly faster using GNU-C's global register
- variable feature.
-
- 0.9.6 -- 0.9.7
-
- - Two new keys in the debugger allow counting of Forth
- primitives executed. Simple profiling facility.
- - `WORD' issues an error if parsed string would be longer
- than 255 chars.
- - More-like effect in `WORDS' improved by Andrew Houghton.
- - Variable `FLOAT-INPUT' when false disables input of
- floating point numbers. Use on 386 without coprocessor.
- - Multiple buffers for `S"' and `C"' when used interactively.
- Try: `S" world! " S" Hello " TYPE TYPE'.
- - Changed `POCKET', now takes an S"-buffer number.
- - New command line options and options in const.h:
- -E- disables floating point input,
- good on 386 w/o 387 under DOS.
- -F converts file names to lower case,
- good on UNIX-like systems when caps-lock is on.
- -P specify number of buffers for `S"'.
- - Rewrote Files Word set for better C-source and error checking.
- - Fixed badly lined up display output of the debugger.
- - Fixed tilde-expansion of file names.
- - Fixed `S" WORDLISTS" ENVIRONMENT?' to return the
- maximum search order length.
- - Fixed double number arithmetics to work with 64 bit machines.
- - Fixed a few other bugs introduced in 0.9.6
- - Minor fix in `SEE' eliminates empty line appearing sometimes.
- - Added online help utilities. Please check directory help
- for how you can contribute to online help for pfe.
-
- 0.9.5 -- 0.9.6
-
- - Fixed a bug in the debugger (when EXECUTE is involved).
- - Fixed another old bug in the debugger (with locals).
- - Termcap driver now issues "ks" and "ke" strings,
- hopefully fixing cursor key trouble on xterm et al.
- - Termcap driver: vt100 assumption made optional.
- When disabled (default) input from unknown terminals
- is received simply with fgets(), no echoing.
- This works better in emacs shell mode.
- - Termcap driver: simplified handling of nonblocking input,
- i.e. KEY? and fixed it to work with FreeBSD.
- - Added Lennart Benshop's 6809 simulator to the demos.
- - Improved keyboard handling of tetris demo.
- - Improved command line completion:
- Type TAB twice to see possible completions.
- - WWORDS is like WORDS but with wildcards.
- Usage:
- WWORDS pattern
- Form patterns like this:
- * matches any sequence of characters
- ? matches any single character
- \ quotes * and ?
- any other character matches this character
- Try:
- WWORDS ??
- WWORDS E*
- WWORDS F*A*
- WWORDS *\?
-
- 0.9.4 -- 0.9.5
-
- - Fixed parse and word to accept any whitespace given blank
- as delimiter. (Replaces a hack in READ-LINE.)
- - fixed EKEY?, now matches EKEY and KEY? matches KEY.
- - More constants for e-keys defined, K-LEFT etc.
- - Some renaming in the C source files to avoid name clashes
- with the curses library.
- - added experimental terminal driver curses.c replacing termcap.c,
- (formerly term-ux.c). The latter still is better.
- - added file shell.c with words for manipulating files and
- directories interactively like with a shell:
- RM file --- ; removes the file
- TOUCH file --- ; sets last file modification time
- to current time or creates file
- CD directory --- ; changes directory
- RMDIR directory --- ; removes directory
- MKDIR directory --- ; creates new directory
- LN file altname --- ; creates link altname to file file
- MV file newname --- ; moves or renames file to name newname
- CP file1 file1 --- ; copies file1 to file2
- LL pattern --- ; lists files long matching pattern
- LS pattern --- ; lists files short matching pattern
-
- $$ --- pid ; pid of the running pfe
- $UID --- uid ; real user id of running pfe
- $EUID --- uid ; real user id of running pfe
- $GID --- gid ; your group id
- $HOME --- addr cnt ; home directory
- $CWD --- addr cnt ; current working directory
- PWD --- ; print current working directory
- UMASK new --- old ; change umask, returns old
- Note: No globbing except in LS and LL, no directory as
- destination for cp, mv, ln.
- Not all of them available with EMX.
-
- 0.9.3 -- 0.9.4
-
- - Reworked the installation procedure:
- replaced `sysdep.h' by a script `config' to
- automagically determine the neccessary information
- from your system. Please read file install!
- - After `ONLY FORTH' you get a bare ANSI-Forth.
- Use `EXTENSIONS ALSO' to access the rest.
- - New concept of default search order: Say
- DEFAULT-ORDER
- and the active search order is saved. Say
- RESET-ORDER
- to return to the saved search order. ABORT executes
- RESET-ORDER. Thus you can decide which search order you
- get after an error.
- After system startup the following order is default:
- ONLY EXTENSIONS ALSO FORTH ALSO DEFINTIONS
- - Fixed signal handling with BSD-like systems.
- - Fixed handling of job control signals.
- - More L&P-F83-compatibility:
- added `?LEAVE', `BS', `ASCII', `CONTROL', `UPC'.
- - Modified `PARSE': now refills at end of line when loading from file.
- - Added Tetris demo.
- - Fixed `+TO' applied to locals.
- - C-Source: Changed type name `CFA' to `Xt' and `pcode' to `pCode'.
- (better uniformity: type names have one capital letter)
- - Dropped support for global register variables. It never worked.
- a) - Fixed several bugs introduced with 0.9.4, again signals...
-
- 0.9.2 -- 0.9.3
-
- - Fixed bugs introduced in 0.9.2.
- - `SIGNAL' allows to install a Forth word as signal handler.
- - Further tidied up terminal driver interface.
- see term-ux.h for system dependent switches
- related to unix terminal handling.
- - `term-ux.c': now assumes vt100 if termcap failes.
- - Merged files `syserr.h/c' into `main.c'.
- - EMX: Caps lock now works with IBM character set 437.
- - EMX: Improved signal handling though it still doesn't work all right.
- - Made `fakemake' script work with nested ifdefs.
- a) - Fixed EXIT discarding local variables (compiling).
- - Fixed debugger displaying too many local variables.
- - Fixed Ultrix bug introduced in 0.9.3
- - Fixed EMX displaying strange characters when debugging.
-
- 0.9.1 -- 0.9.2
-
- - Fixed `GET-ORDER' which returned the searched word lists
- in the wrong order.
- - Fixed `FLUSH-FILE' now returning the status.
- - Fixed `BRANCH' and `?BRANCH'.
- - Fixed `SEE' refusing to show words after `DEBUG word'.
- - Removed `SAVE' and `RELOAD'. Sorry. They were incorrect.
- - Added command line options -D to save a dictionary image
- containing compiled Forth code to a file.
- Command line option -d reads such an image in later.
- - Added variable `APPLICATION': contains an xt or zero. The
- xt is executed after startup instead of `QUIT'. Use
- this with options -D/-d to create turnkey applications.
- - Added variable `RESET-ORDER'. After `RESET-ORDER OFF' the
- search order isn't reset by `ABORT', i.e. after errors.
- - Added `ARGC' and `ARGV' making the shell command line options
- visible to FORTH.
- - Now includes ~/.pferc (name can be changed in const.h) on startup.
- - In const.h: added ISO_CHARSET to enable accents and "umlauts"
- on all machines supporting them, not only on Linux.
- - Added file `unix.c' and moved some unix-idosycrasies there.
- - Added file `yours.c' for your own primitives.
- - Added terminal driver for DOS-OS/2-EMX in file `term-emx.c'.
- - Updated installation hints for DOS users -- please read them.
- - Use environment variable PFEOPTIONS to set your favourite
- command line options permanently.
- - Split file support.c in support.c and dictnry.c.
- - Split file term.c in term.c and term-ux.c separating system
- dependencies. When porting, please write separate files
- term-xxx.c for completely different machines xxx and set
- variable TERMO in Makefile accordingly.
- - C-source: renamed several variables and structure components
- for better readability, added macros to access Forth-
- variables more easily.
- - C-source: Renamed catch() to cAtch() since "catch" becomes
- a keyword in C++.
- - Makefile: common options made default options.
-
- 0.9.0 -- 0.9.1
-
- - search path and default extensions for include- and block files.
- See source file `const.h' for defaults,
- environment variable `PFEINCLUDE' and command line option `-Ipath'.
- - `EXPAND-FN' ( addr1 cnt1 addr2 --- addr2 cnt2 )
- expands a given file name with path and extension.
- - added variable `LAST' pointing to the most recently CREATEd
- word. Changed `DOES>' to work with this variable instead
- of `LATEST' (which is - roughly - `CURRENT @ @').
- - added variable `REDEFINED-MSG'. If false, the message
- `"xxx" is redefined' is omitted.
- - `SOURCE-LINE' returns the line number while INCLUDing a file.
-
- 0.8.11 -- 0.9.0
-
- - Included Kevin Haddock's structure tool. See file `struct.4'.
- - Ported to DOS and OS/2 using Eberhard Mattes' `emx'-environment.
- - C standard io: stdin, stdout, stderr now visible as Forth-files
- with the obvious names: `STDIN', `STDOUT' and `STDERR'.
- - Can be used as filter now: Interprets stdin (if not a terminal)
- until EOF and exits.
- - Added word `#!' with the same meaning as `REFILL'
- to support shell scripts like this:
- #! ./pfe -q
- 1 2 3 4 + + + . BYE
- a) - Improved fakemake-script by Giorgio Richelli.
- - Changed directory organization. Sources now in `src'.
- - Changed directory name inside archive for unpacking in DOS.
- - Fixed a floating point alignment bug on HP-UX.
- - Block editor: ^KL interprets current line,
- ^KB loads current block.
-
- 0.8.10 -- 0.8.11
-
- - Included Kevin Haddock's interface to Linux' shared libraries.
- Linux users see README.linux-shlibs. This is experimental.
- - Several fixes to `SEE'.
- - Fixed `SEARCH-WORDLIST'.
- - In case pfe fails to detect the text window size,
- the command line option -t can be used. E.g.:
- -t132x28
- makes pfe assume the screen size was 132 columns, 28 rows.
- - Slightly changed inner interpreter.
- - Prepared support for global register variables, see `sysdep.h'.
- (HP-UX users: please read INSTALLATION)
- - Moving C sources towards the GNU indentation style
- (GNU-emacs' c-mode with default settings).
-
- 0.8.9 -- 0.8.10
-
- - Ported it to ULTRIX.
- - Renamed constants: `XMAX' to `COLS' and `YMAX' to `ROWS'.
- `XMAX' and `YMAX' might some day become the pixel size
- of a graphics window.
- - Added support for hex number input regardless of `BASE':
- In `const.h' define PREFIX_HEX as prefix character,
- e.g. '$' to make pfe understand $100 as 256.
- - Same support exists for binary numbers, prefix defaults to '%'.
- - Fixed `VALUE' to expect an initializer when defining a value.
-
- 0.8.8 -- 0.8.9
-
- - Added multi-dimensional array support, see `library.4'.
- - Fixed a bug in the query to the termcap database when using
- the System V curses emulation of termcap functions. This
- bug led to abuse of malloc()ed memory and to very severe
- problems on some machines...
- - Added `reliable' signal() using sigaction() according to
- Stevens. It has been reported however that this is
- unreliable at least on Linux. So don't define USE_SIGACTION.
-
- 0.8.7 -- 0.8.8
-
- - Made aware of changing window size when running in an xterm.
- - Added file `termcap.linux-xterm'
- with a modified termcap-entry for xterm under Linux.
- - Modified the return codes of EKEY.
- - `ORDER' shows the `CURRENT' vocabulary too.
- - GET-ORDER doesn't report the `ONLY' word list occuring
- at the last position in the search order any more.
- - Added a few words to `library.4'.
-
- 0.8.6 -- 0.8.7
-
- - Fixed `RENAME'-bug.
- - Several slight changes to make it acceptable to a C++-compiler.
- - Added `+TO'.
- - More (shell) command line options.
- - Begun with man-page. Have a look at `pfe.1' with
- nroff -t -man pfe.1 | more
- - changed INSTALL, system specific hints for SGI and HP
-
- 0.8.5 -- 0.8.6
-
- - Simple debugger: Say `DEBUG XYZ' and further executions
- of `XYZ' will be done single stepping. Works with Colon-
- definitions and DOES>-defined words.
- Type '?' or 'H' at the debugger prompt to see available keys.
- Use `NO-DEBUG XYZ' to restore `XYZ' to normal.
- - Added file `lpf83.c' to provide some compatibility to
- Laxen&Perry's F83. Moved some definitions to that file and
- added some more.
-
- 0.8.4 -- 0.8.5
-
- - Improved SEE, produces nicely formatted output now.
- This required some major changes to the internal
- organization of the compiler.
- - KEY fixed for national characters with codes > 127.
- - Command line completion can be excluded from compilation.
- - Some changes to *maybe* allow compilation on 64 Bit machines.
- a)
- - Fixed two bugs introduced in 0.8.5
- - Commandline supports configurable function keys. Try:
- : DIR SYSTEM" ls -l" ; K1 EXECUTES DIR
- then press F1!
-
- 0.8.3 -- 0.8.4
-
- - C@ no more sign-extends the byte.
- - Fixed `CONVERT'.
- - Fixed error condition after incomplete `READ-FILE'/`WRITE-FILE'.
- - Commandline does completion of a word on tab-key.
- - `RANDOM' and `SRAND' provide pseudo random numbers.
- - Improved `SEE' a little -- yet still not satisfying.
- - Moved compiler internals related declarations to file `compiler.h'.
-
- 0.8.2 -- 0.8.3
-
- - `MS' utilizes usleep() if available.
- - `U-SEC' returns an unsigned quantity representing
- the system time in microseconds.
- - Added file `library.4' open for your source code enhancements.
-
- 0.8.1 -- 0.8.2
-
- - `REPRESENT' fixed.
- - `.S' prints floating stack too.
- - Lots of ports done by Marko Teiste.
- - `fakemake' script by Marko Teiste eases switching
- to your platform if your make knows no conditionals.
-
- 0.8.0 -- 0.8.1
-
- - `SAVE filename' saves entire dictionary.
- - `RELOAD filename' reloads such a saved dictionary.
- - Command line option -d loads a dictionary at startup.
- - Fixed number input conversion with `LOWER-CASE ON'.
- - Vectorized I/O:
- . `EMIT' does a `*EMIT* @ EXECUTE'
- . which by default executes `(EMIT)'
- . same applies to KEY, EXPECT and TYPE
- . `STANDARD-I/O' restores the defaults
-
- 0.7.6 -- 0.8.0
-
- - Fixed DNEGATE with HP-UX' c89-compiler.
- - Fixed floating point alignment problem.
- - Modified term.c, supports optionally ioctl() instead of tcsetattr().
- - Cooperates with job control now.
- - Connected QUIT to THROW.
- - Executable name selectable in the Makefile (changed it to `pfe').
- - Changed EDT to EDIT-TEXT and EDIT to EDIT-BLOCK.
- - After an error during compilation:
- EDIT-ERROR jumps to the source line.
- - `C"' can be used outside definitions.
- - Fixed `COMPILE,' and `[IF]' with `LOWER-CASE ON'.
-
- 0.7.5 -- 0.7.6
-
- - Fixed `ORDER' and `VOCS'.
- - Added HP-UX support.
- - Separated file `forth-83.c' from `misc.c'.
- - Independent from gcc now, no usage of `long long' any more.
-
- 0.7.4 -- 0.7.5
-
- - Fixed floored divide bug.
- - Fixed COMPARE bug.
- - Changed error checking in control flow words to allow
- "extended control flow patterns".
- - Changed ':' to not immediate.
- - Passes tester.fr/core.fr, which are included in the distribution.
- I did a small fix to core.fr, definition `GP7'.
- - Modified control flow words compiling strategy
- to allow a more modular C-source organization.
- - Simplified term.c, uses only POSIX.1-conforming system calls.
- - Simplified signal handling, more flexible.
- - Enabled break (^U) and quit (default ^\) signals.
- Break leads to ABORT, quit terminates the system.
- - Changed file name "missing.h" to "sysdep.h" and moved all
- system dependend constants and definitions there,
- not only "missing" ones.
- - Added file `sysdep.c' for system dependend definitions.
- - Added some System V Release 2 support. See `sysdep.h/-.c'.
- - More flexible Makefile
-
- 0.7.3 -- 0.7.4
-
- - Fixed READ-LINE bug, INCLUDED works again.
- - Some minor bugs in the interpreter fixed.
- - Command line history now fully operable.
- Try up/down-arrow, ^E/^X.
- - More block-editor help. Pops up 1 second after ^Q/K/O.
- - Begun with test-suite. Try 'make test'.
- - Adapded file TODO to new insights.
- a)
- - Fixed local variable bug.
-
- 0.7.2 -- 0.7.3
-
- - UNTIL now really immediate.
- - Block editor: find and replace fixed.
- - Block editor: stamps changed screens now with LOGNAME
- and date/time. Turn feature on/off with ^OS.
- - Commandline allows recall of one command with ^E now.
- - Variable LOWER-CASE added. If 0<> "dup" finds "DUP".
- - Command line option -l defaults LOWER-CASE to TRUE.
- - ^C at the command line toggles CAPS-mode: lower and
- upper case characters are exchanged.
- - ^OC in the block editor toggles similar CAPS mode.
-
- 0.7.1 -- 0.7.2
-
- - Fixed FCONSTANT.
- - File access word set completed.
- - POCKET (-- addr u) added for interactive use of S".
- - USING and EDIT deal with read-only files now.
- hint: Do EMPTY-BUFFERS if you accidentally UPDATEd
- a block in a readonly file.
- - EKEY reworked, now returns a distinct code for every key
- termcap informs about.
- - C-source: better naming of several structure members.
-
- 0.7.0 -- 0.7.1
-
- - Including file from command line "activated".
- - POSTPONE fixed
- - BLOCK/BUFFER/UPDATE more stable now
- - The block editor learned:
- . how to search (^QF) and replace (^QA),
- . how to insert (^KV) and delete (^KG) screens,
- . how to display some help - there will be more.
- - Compressed the distribution with compress instead of gzip.
- - Less strong error checking in signal handling.
- - Runs with AIX 3.x now (BIG_ENDIAN = 1, -DAIX3).
-